package shujia.day11;

import java.util.Comparator;
import java.util.TreeSet;

/*
    使用比较器的方式创建TreeSet集合

    需求：书的名字和价格一样的话，重复，价格从小到大排序
 */
class MyComparator implements Comparator<Book> {
    @Override
    public int compare(Book o1, Book o2) {
        // o1 - 待插入的元素’
        // o2 - 已经在树中的元素
//        return 0;
        int i1 = o2.getPrice() - o1.getPrice();
        return (i1 == 0) ? o1.getName().compareTo(o2.getName()) : i1;
    }
}


// 按照书的名字从短到长排序
//class MyComparator2 implements Comparator<Book> {
//    @Override
//    public int compare(Book o1, Book o2) {
//        int i1 = o1.getName().length() - o2.getName().length();
//        int i2 = (i1 == 0) ? o1.getName().compareTo(o2.getName()) : i1;
//        return (i2 == 0) ? o1.getPrice() - o2.getPrice() : i2;
//    }
//}


public class TreeSetDemo3 {
    public static void main(String[] args) {
//        TreeSet<Book> books = new TreeSet<>(new MyComparator());
        TreeSet<Book> books = new TreeSet<>(new Comparator<Book>() {
            @Override
            public int compare(Book o1, Book o2) {
                int i1 = o1.getName().length() - o2.getName().length();
                int i2 = (i1 == 0) ? o1.getName().compareTo(o2.getName()) : i1;
                return (i2 == 0) ? o1.getPrice() - o2.getPrice() : i2;
            }
        });



        Book b1 = new Book("面试指南", 100);
        Book b2 = new Book("大数据spark", 98);
        Book b3 = new Book("面试指南", 100);
        Book b4 = new Book("flink开发指南", 100);
        Book b5 = new Book("java从基础到入坑", 50);

        books.add(b1);
        books.add(b2);
        books.add(b3);
        books.add(b4);
        books.add(b5);

        for (Book book : books) {
            System.out.println(book);
        }

    }
}
